<?php
// 应用公共文件

if (!function_exists('p')) {
    /**
     * 打印输出数据到页面
     * @param mixed $data 输出的数据
     * @param number $no_die 是否终止程序
     */
    function p( $data = '', $no_die = 0 ){
		echo "<pre>";
		print_r( $data );
		echo "</pre>";
		if( $no_die == 0 ){
			die;
		}
	}
}


if (!function_exists('make_json_response')) {
	/**
	 * 创建一个JSON格式的数据
	 *
	 * @access  public
	 * @param   array    $data 需要返回的数据
	 * @param   bool     $result 处理结果true/false
	 * @param   string   $message 提示消息内容
	 * @param   integer  $code code码标识
	 * @param   array    $append 附加数据信息 key=>value
	 * @return  void
	 */
	
	function make_json_response($data = '', $result = true, $message = '', $code = 200, $append = array()) {
	    $res = array('result' => $result, 'message' => $message, 'code' => $code, 'data' => $data);
	
	    if (!empty($append)) {
	        foreach ($append AS $key => $val) {
	            $res[$key] = $val;
	        }
	    }	
	    exit(json_encode($res));
	}
}


if (!function_exists('recursive_make_tree')){
	/**
     * 递归生成树
     * @param  array  $list  要转换的数据集
     * @param  string  $pk    自增字段（栏目id）
     * @param  string  $pid   parent标记字段
     * @param  string  $child 孩子节点key
     * @param  integer $root  根节点标识
     * @return array
     */
    function recursive_make_tree($list, $pk = 'id', $pid = 'pid', $child = '_child', $root = 0)
    {
        $tree = [];
        foreach ($list as $key => $val) {
            if ($val[$pid] == $root) {
                //获取当前$pid所有子类
                unset($list[$key]);
                if (!empty($list)) {
                  $child = recursive_make_tree($list, $pk, $pid, $child, $val[$pk]);
                  if (!empty($child)) {
                    $val['_child'] = $child;
                  }
                }
                $tree[] = $val;
            }
        }
        return $tree;
    }
}
